Traditionally, users have interacted with electronic devices (such as a computer or a television) or computing applications (such as computer games, multimedia applications, or office applications) via indirect input devices, including, for example, keyboards, joysticks, or remote controllers. The user manipulates the input devices to perform a particular operation, such as selecting a specific entry from a menu of operations. Modern input devices, however, include multiple buttons, often in a complex configuration, to facilitate communication of user commands to the electronic devices or computing applications; correct operation of these input devices is often challenging to the user. Additionally, actions performed on an input device generally do not correspond in any intuitive sense to the resulting changes on, for example, a screen display controlled by the device. Input devices can also be lost, and the frequent experience of searching for misplaced devices has become a frustrating staple of modern life.
Touch screens implemented directly on user-controlled devices have obviated the need for separate input devices. A touch screen detects the presence and location of a “touch” performed by a user's finger or other object on the display screen, enabling the user to enter a desired input by simply touching the proper area of a screen. While suitable for small display devices such as tablets and wireless phones, touch screens are impractical for large entertainment devices that the user views from a distance. Particularly for games implemented on such devices, electronics manufacturers have developed systems that detect a user's movements or gestures and cause the display to respond in a contextually relevant manner. The user's gestures can be detected using an optical imaging system, and are characterized and interpreted by suitable computational resources. For example, a user near a TV can perform a sliding hand gesture, which is detected by the gesture-recognition system; in response to the detected gesture, the TV can activate and display a control panel on the screen, allowing the user to make selections thereon using subsequent gestures; for example, the user can move her hand in an “up” or “down” direction, which, again, is detected and interpreted to facilitate channel selection.
While these gesture-recognition systems have generated substantial consumer excitement, the user accustomed to traditional input devices must forgo familiar patterns of interactivity in favor of a new mode with its own “vocabulary” of command and response. Indeed, gesture vocabularies can vary from system to system. Particularly for traditional applications—such as web browsers and word processors, whose operation depends heavily on familiar controllers—consumer resistance to adopting gesture-based control can be substantial.
Consequently, there is a need for a gesture-recognition system that responds in ways similar to the behavior of conventional control devices, and ideally which is responsive to user perceptions of what constitutes similarity.